/**
* \file CGlobal.h
* \author Corentin Le Bail
* \date 2009-2012
* \brief Fichier des décalrations globales
*/
//------------------------------------------------------------------------------
#ifndef __CGLOBAL_H__
#define __CGLOBAL_H__
//------------------------------------------------------------------------------
#include <QMainWindow>
#include <QString>
#include <QVariant>
//------------------------------------------------------------------------------
#define SALT	QString("lottux")
//------------------------------------------------------------------------------
/**
 * \class CGlobal CGlobal.h "CGlobal.h"
 * \brief Classe des déclarations globales
 */
class CGlobal 
{
	public:
		/**
		 * \enum EAction
		 * \brief Actions de navigation dans les fiches.
		 */
		typedef enum {	acNone, acTableVide, acAjout, acModif, acAddLigne, acAfficheLigne, acAjoutFromOther, acAffiche,
						acConstruct, acAjoutFromDevis, acAjoutFromCommande, acAjoutFromClient, acBloque} EAction;
		
		/**
		 * \enum ESens
		 * \brief Sens de navigation dans les fiches.
		 */
		typedef enum {seNone, sePremier, sePrecedent, seSuivant, seDernier} ESens;
						
		/**
		 * \fn static bool getChampValue(QMainWindow *window, QString tableName, QString champName, QString& value)
		 * \brief Recherche la valeur d'un champ d'une fenêtre donnée en fonction de son nom de champ et de table.
		 * \param[in] window Pointeur vers la fenêtre
		 * \param[in] tableName Nom de la table
		 * \param[in] champName Nom du champ
		 * \param[out] value Valeur du champ
		 * \return True si le champ existe, false sinon
		 */
		static bool getChampValue(QMainWindow *window, QString tableName, QString champName, QString& value);
		/**
		 * \fn static QString getMimeType(QString ext)
		 * \return Le type mime associé à une extention
		 * \param[in] ext L'extention
		 */
		static QString getMimeType(QString ext);
		/**
		 * \fn static QString addSlashesQuot(QString str)
		 * \brief Ajoute un backslash aux " d'une chaine de caractères
		 * \param[in] str Chaine de caractères à traiter
		 * \return La chaine traité
		 */
		static QString addSlashesQuot(QString str);
		/**
		 * \fn static QString stripSlashesQuot(QString str)
		 * \brief Supprime le backslash des " d'une chaine de caractères
		 * \param[in] str Chaine de caractères à traiter
		 * \return La chaine traité
		 */
		static QString stripSlashesQuot(QString str);
		/**
		 * \fn static QString md5Hash(QString src)
		 * \brief Encode une chaine de caractère en md5
		 * \param[in] str Chaine de caractères à encoder
		 * \return La chaine encodé
		 */
		static QString md5Hash(QString str);
		/**
		 * \fn static QString getToken(void)
		 * \return Le token de la connection
		 */
		static QString getToken(void);
		/**
		 * \fn static void setToken(QString token)
		 * \brief Affecte le token de la connection
		 * \param[in] token Le token de la connection
		 */
		static void setToken(QString token);
		/**
		 * \fn static QVariantMap getConfig(void)
		 * \return Une map contenant les variables de configuration
		 */
		static QVariantMap getConfig(void);
		/**
		 * \fn static void setConfig(QVariantMap config
		 * \brief Affecte les variables de configuration
		 * \param[in] config Les variables de configuration sous forme de Map
		 */
		static void setConfig(QVariantMap config);
		/**
		 * \fn static QString getCurrentUser(void)
		 * \return L'utilisateur connecté
		 */
		static QString getCurrentUser(void);
		/**
		 * \fn static void setCurrentUser(QString currentUser)
		 * \brief Affecte l'utilisateur connecté
		 * \param[in] token L'utilisateur connecté
		 */
		static void setCurrentUser(QString currentUser);
};
//------------------------------------------------------------------------------
#endif //__CGLOBAL_H__
//------------------------------------------------------------------------------